import { defineStore } from 'pinia'

/* 
  defin 接受两个参数 第一个name 字符串 必传 该store 唯一id
  二、options 一个对象 配置stroe 内数据 和修改数据方法
*/
export const useUsersStroe = defineStore('users', {
  /* 
    state 接受一个箭头函数的值,它不能直接接受一个对象
  */
  state: () => {
    return {
      name: '詹姆斯',
      age: 30,
      sex: '男'
    }
  },
  getters: {
    getAddAge: (state) => {
      return state.age + 10
    },
    getNameAndAge() {
      return this.name + this.getAddAge // 调用其他的getter
    },
    getAddParams(state) {
      return (params) => {
        return state.age + params
      }
    }
  },
  actions: {
    saveName(name) {
      // 修改state 中的 name值  里面的this 指向的是当前的store
      this.name = name
    },
    saveSage(data) {
      this.age = data
    }
  }
})
